﻿// 中文注释：该文件定义了ChannelView类，用于显示通道场景
#ifndef CHANNELVIEW_H
#define CHANNELVIEW_H

#include "ChannelScene.h"
#include <QGraphicsView>
#include <QResizeEvent>

/**
 * @brief 通道视图类
 * 继承自QGraphicsView，用于显示和管理通道场景
 * 提供更新通道记录和处理窗口大小变化的功能
 */
class ChannelView : public QGraphicsView
{
    Q_OBJECT
public:
    /**
     * @brief 构造函数
     * @param parent 父窗口指针，默认为 nullptr
     * 初始化场景对象并设置为视图的场景
     */
    explicit ChannelView(QWidget *parent=0);
    
    /**
     * @brief 析构函数
     * 声明为虚函数以确保正确释放派生类资源
     */
    virtual ~ChannelView();

    /**
     * @brief 更新通道记录
     * @param num 通道编号
     * 转发更新请求到场景对象
     */
    void updateChannelRecord(int num);
private:
    /**
     * @brief 大小变化事件
     * @param event 大小变化事件对象
     * 重写QGraphicsView的resizeEvent方法，当窗口大小变化时更新场景大小
     */
    void resizeEvent(QResizeEvent *event);
    
    // 指向通道场景的指针，用于管理通道相关的图形项
    ChannelScene *m_scene;
};
#endif // CHANNELVIEW_H
